// 动态规划
// const maxProfit = prices => {
//     const len = prices.length;
//     // 创建dp数组
//     const dp = new Array(len).fill([0, 0]);
//     // dp数组初始化
//     dp[0] = [-prices[0], 0];
//     for (let i = 1; i < len; i++) {
//         // 更新dp[i]
//         dp[i] = [
//             Math.max(dp[i - 1][0], -prices[i]),
//             Math.max(dp[i - 1][1], prices[i] + dp[i - 1][0]),
//         ];
//     }
//     return dp[len - 1][1];
// };
const maxProfit = function (prices) {
    let n = prices.length;
    let dp = Array.from(new Array(n), () => new Array(2));
    dp[0] = 0;
    dp[1] = -prices[0];
    for (let i = 1; i < n; i++) {
        dp[0] = Math.max(dp[0], dp[1] + prices[i]);
        dp[1] = Math.max(dp[1], -prices[i]);
    }
    return dp[0];
};